package io.kubernetes.client.openapi.models;

import io.kubernetes.client.fluent.VisitableBuilder;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.lang.String;
import java.util.function.Predicate;
import java.util.List;
import java.lang.Boolean;
import io.kubernetes.client.fluent.Fluent;
import java.util.Collection;
import io.kubernetes.client.fluent.Nested;
import java.lang.Deprecated;
import java.util.Iterator;

public interface V1EphemeralContainerFluent<A extends io.kubernetes.client.openapi.models.V1EphemeralContainerFluent<A>> extends io.kubernetes.client.fluent.Fluent<A> {


    public A addToArgs(int index,java.lang.String item);
    public A setToArgs(int index,java.lang.String item);
    public A addToArgs(java.lang.String... items);
    public A addAllToArgs(java.util.Collection<java.lang.String> items);
    public A removeFromArgs(java.lang.String... items);
    public A removeAllFromArgs(java.util.Collection<java.lang.String> items);
    public java.util.List<java.lang.String> getArgs();
    public java.lang.String getArg(int index);
    public java.lang.String getFirstArg();
    public java.lang.String getLastArg();
    public java.lang.String getMatchingArg(java.util.function.Predicate<java.lang.String> predicate);
    public java.lang.Boolean hasMatchingArg(java.util.function.Predicate<java.lang.String> predicate);
    public A withArgs(java.util.List<java.lang.String> args);
    public A withArgs(java.lang.String... args);
    public java.lang.Boolean hasArgs();
    public A addNewArg(java.lang.String original);
    public A addToCommand(int index,java.lang.String item);
    public A setToCommand(int index,java.lang.String item);
    public A addToCommand(java.lang.String... items);
    public A addAllToCommand(java.util.Collection<java.lang.String> items);
    public A removeFromCommand(java.lang.String... items);
    public A removeAllFromCommand(java.util.Collection<java.lang.String> items);
    public java.util.List<java.lang.String> getCommand();
    public java.lang.String getCommand(int index);
    public java.lang.String getFirstCommand();
    public java.lang.String getLastCommand();
    public java.lang.String getMatchingCommand(java.util.function.Predicate<java.lang.String> predicate);
    public java.lang.Boolean hasMatchingCommand(java.util.function.Predicate<java.lang.String> predicate);
    public A withCommand(java.util.List<java.lang.String> command);
    public A withCommand(java.lang.String... command);
    public java.lang.Boolean hasCommand();
    public A addNewCommand(java.lang.String original);
    public A addToEnv(int index,io.kubernetes.client.openapi.models.V1EnvVar item);
    public A setToEnv(int index,io.kubernetes.client.openapi.models.V1EnvVar item);
    public A addToEnv(io.kubernetes.client.openapi.models.V1EnvVar... items);
    public A addAllToEnv(java.util.Collection<io.kubernetes.client.openapi.models.V1EnvVar> items);
    public A removeFromEnv(io.kubernetes.client.openapi.models.V1EnvVar... items);
    public A removeAllFromEnv(java.util.Collection<io.kubernetes.client.openapi.models.V1EnvVar> items);
    public A removeMatchingFromEnv(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1EnvVarBuilder> predicate);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildEnv instead.
     * @return The buildable object.
     */
        public java.util.List<io.kubernetes.client.openapi.models.V1EnvVar> getEnv();
    public java.util.List<io.kubernetes.client.openapi.models.V1EnvVar> buildEnv();
    public io.kubernetes.client.openapi.models.V1EnvVar buildEnv(int index);
    public io.kubernetes.client.openapi.models.V1EnvVar buildFirstEnv();
    public io.kubernetes.client.openapi.models.V1EnvVar buildLastEnv();
    public io.kubernetes.client.openapi.models.V1EnvVar buildMatchingEnv(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1EnvVarBuilder> predicate);
    public java.lang.Boolean hasMatchingEnv(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1EnvVarBuilder> predicate);
    public A withEnv(java.util.List<io.kubernetes.client.openapi.models.V1EnvVar> env);
    public A withEnv(io.kubernetes.client.openapi.models.V1EnvVar... env);
    public java.lang.Boolean hasEnv();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvNested<A> addNewEnv();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvNested<A> addNewEnvLike(io.kubernetes.client.openapi.models.V1EnvVar item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvNested<A> setNewEnvLike(int index,io.kubernetes.client.openapi.models.V1EnvVar item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvNested<A> editEnv(int index);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvNested<A> editFirstEnv();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvNested<A> editLastEnv();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvNested<A> editMatchingEnv(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1EnvVarBuilder> predicate);
    public A addToEnvFrom(int index,io.kubernetes.client.openapi.models.V1EnvFromSource item);
    public A setToEnvFrom(int index,io.kubernetes.client.openapi.models.V1EnvFromSource item);
    public A addToEnvFrom(io.kubernetes.client.openapi.models.V1EnvFromSource... items);
    public A addAllToEnvFrom(java.util.Collection<io.kubernetes.client.openapi.models.V1EnvFromSource> items);
    public A removeFromEnvFrom(io.kubernetes.client.openapi.models.V1EnvFromSource... items);
    public A removeAllFromEnvFrom(java.util.Collection<io.kubernetes.client.openapi.models.V1EnvFromSource> items);
    public A removeMatchingFromEnvFrom(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1EnvFromSourceBuilder> predicate);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildEnvFrom instead.
     * @return The buildable object.
     */
        public java.util.List<io.kubernetes.client.openapi.models.V1EnvFromSource> getEnvFrom();
    public java.util.List<io.kubernetes.client.openapi.models.V1EnvFromSource> buildEnvFrom();
    public io.kubernetes.client.openapi.models.V1EnvFromSource buildEnvFrom(int index);
    public io.kubernetes.client.openapi.models.V1EnvFromSource buildFirstEnvFrom();
    public io.kubernetes.client.openapi.models.V1EnvFromSource buildLastEnvFrom();
    public io.kubernetes.client.openapi.models.V1EnvFromSource buildMatchingEnvFrom(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1EnvFromSourceBuilder> predicate);
    public java.lang.Boolean hasMatchingEnvFrom(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1EnvFromSourceBuilder> predicate);
    public A withEnvFrom(java.util.List<io.kubernetes.client.openapi.models.V1EnvFromSource> envFrom);
    public A withEnvFrom(io.kubernetes.client.openapi.models.V1EnvFromSource... envFrom);
    public java.lang.Boolean hasEnvFrom();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvFromNested<A> addNewEnvFrom();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvFromNested<A> addNewEnvFromLike(io.kubernetes.client.openapi.models.V1EnvFromSource item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvFromNested<A> setNewEnvFromLike(int index,io.kubernetes.client.openapi.models.V1EnvFromSource item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvFromNested<A> editEnvFrom(int index);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvFromNested<A> editFirstEnvFrom();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvFromNested<A> editLastEnvFrom();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvFromNested<A> editMatchingEnvFrom(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1EnvFromSourceBuilder> predicate);
    public java.lang.String getImage();
    public A withImage(java.lang.String image);
    public java.lang.Boolean hasImage();
    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withImage instead.
     */
        public A withNewImage(java.lang.String original);
    public java.lang.String getImagePullPolicy();
    public A withImagePullPolicy(java.lang.String imagePullPolicy);
    public java.lang.Boolean hasImagePullPolicy();
    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withImagePullPolicy instead.
     */
        public A withNewImagePullPolicy(java.lang.String original);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildLifecycle instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1Lifecycle getLifecycle();
    public io.kubernetes.client.openapi.models.V1Lifecycle buildLifecycle();
    public A withLifecycle(io.kubernetes.client.openapi.models.V1Lifecycle lifecycle);
    public java.lang.Boolean hasLifecycle();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LifecycleNested<A> withNewLifecycle();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LifecycleNested<A> withNewLifecycleLike(io.kubernetes.client.openapi.models.V1Lifecycle item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LifecycleNested<A> editLifecycle();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LifecycleNested<A> editOrNewLifecycle();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LifecycleNested<A> editOrNewLifecycleLike(io.kubernetes.client.openapi.models.V1Lifecycle item);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildLivenessProbe instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1Probe getLivenessProbe();
    public io.kubernetes.client.openapi.models.V1Probe buildLivenessProbe();
    public A withLivenessProbe(io.kubernetes.client.openapi.models.V1Probe livenessProbe);
    public java.lang.Boolean hasLivenessProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LivenessProbeNested<A> withNewLivenessProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LivenessProbeNested<A> withNewLivenessProbeLike(io.kubernetes.client.openapi.models.V1Probe item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LivenessProbeNested<A> editLivenessProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LivenessProbeNested<A> editOrNewLivenessProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LivenessProbeNested<A> editOrNewLivenessProbeLike(io.kubernetes.client.openapi.models.V1Probe item);
    public java.lang.String getName();
    public A withName(java.lang.String name);
    public java.lang.Boolean hasName();
    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withName instead.
     */
        public A withNewName(java.lang.String original);
    public A addToPorts(int index,io.kubernetes.client.openapi.models.V1ContainerPort item);
    public A setToPorts(int index,io.kubernetes.client.openapi.models.V1ContainerPort item);
    public A addToPorts(io.kubernetes.client.openapi.models.V1ContainerPort... items);
    public A addAllToPorts(java.util.Collection<io.kubernetes.client.openapi.models.V1ContainerPort> items);
    public A removeFromPorts(io.kubernetes.client.openapi.models.V1ContainerPort... items);
    public A removeAllFromPorts(java.util.Collection<io.kubernetes.client.openapi.models.V1ContainerPort> items);
    public A removeMatchingFromPorts(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1ContainerPortBuilder> predicate);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildPorts instead.
     * @return The buildable object.
     */
        public java.util.List<io.kubernetes.client.openapi.models.V1ContainerPort> getPorts();
    public java.util.List<io.kubernetes.client.openapi.models.V1ContainerPort> buildPorts();
    public io.kubernetes.client.openapi.models.V1ContainerPort buildPort(int index);
    public io.kubernetes.client.openapi.models.V1ContainerPort buildFirstPort();
    public io.kubernetes.client.openapi.models.V1ContainerPort buildLastPort();
    public io.kubernetes.client.openapi.models.V1ContainerPort buildMatchingPort(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1ContainerPortBuilder> predicate);
    public java.lang.Boolean hasMatchingPort(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1ContainerPortBuilder> predicate);
    public A withPorts(java.util.List<io.kubernetes.client.openapi.models.V1ContainerPort> ports);
    public A withPorts(io.kubernetes.client.openapi.models.V1ContainerPort... ports);
    public java.lang.Boolean hasPorts();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.PortsNested<A> addNewPort();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.PortsNested<A> addNewPortLike(io.kubernetes.client.openapi.models.V1ContainerPort item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.PortsNested<A> setNewPortLike(int index,io.kubernetes.client.openapi.models.V1ContainerPort item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.PortsNested<A> editPort(int index);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.PortsNested<A> editFirstPort();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.PortsNested<A> editLastPort();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.PortsNested<A> editMatchingPort(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1ContainerPortBuilder> predicate);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildReadinessProbe instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1Probe getReadinessProbe();
    public io.kubernetes.client.openapi.models.V1Probe buildReadinessProbe();
    public A withReadinessProbe(io.kubernetes.client.openapi.models.V1Probe readinessProbe);
    public java.lang.Boolean hasReadinessProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ReadinessProbeNested<A> withNewReadinessProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ReadinessProbeNested<A> withNewReadinessProbeLike(io.kubernetes.client.openapi.models.V1Probe item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ReadinessProbeNested<A> editReadinessProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ReadinessProbeNested<A> editOrNewReadinessProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ReadinessProbeNested<A> editOrNewReadinessProbeLike(io.kubernetes.client.openapi.models.V1Probe item);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildResources instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1ResourceRequirements getResources();
    public io.kubernetes.client.openapi.models.V1ResourceRequirements buildResources();
    public A withResources(io.kubernetes.client.openapi.models.V1ResourceRequirements resources);
    public java.lang.Boolean hasResources();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ResourcesNested<A> withNewResources();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ResourcesNested<A> withNewResourcesLike(io.kubernetes.client.openapi.models.V1ResourceRequirements item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ResourcesNested<A> editResources();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ResourcesNested<A> editOrNewResources();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ResourcesNested<A> editOrNewResourcesLike(io.kubernetes.client.openapi.models.V1ResourceRequirements item);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildSecurityContext instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1SecurityContext getSecurityContext();
    public io.kubernetes.client.openapi.models.V1SecurityContext buildSecurityContext();
    public A withSecurityContext(io.kubernetes.client.openapi.models.V1SecurityContext securityContext);
    public java.lang.Boolean hasSecurityContext();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.SecurityContextNested<A> withNewSecurityContext();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.SecurityContextNested<A> withNewSecurityContextLike(io.kubernetes.client.openapi.models.V1SecurityContext item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.SecurityContextNested<A> editSecurityContext();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.SecurityContextNested<A> editOrNewSecurityContext();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.SecurityContextNested<A> editOrNewSecurityContextLike(io.kubernetes.client.openapi.models.V1SecurityContext item);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildStartupProbe instead.
     * @return The buildable object.
     */
        public io.kubernetes.client.openapi.models.V1Probe getStartupProbe();
    public io.kubernetes.client.openapi.models.V1Probe buildStartupProbe();
    public A withStartupProbe(io.kubernetes.client.openapi.models.V1Probe startupProbe);
    public java.lang.Boolean hasStartupProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.StartupProbeNested<A> withNewStartupProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.StartupProbeNested<A> withNewStartupProbeLike(io.kubernetes.client.openapi.models.V1Probe item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.StartupProbeNested<A> editStartupProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.StartupProbeNested<A> editOrNewStartupProbe();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.StartupProbeNested<A> editOrNewStartupProbeLike(io.kubernetes.client.openapi.models.V1Probe item);
    public java.lang.Boolean getStdin();
    public A withStdin(java.lang.Boolean stdin);
    public java.lang.Boolean hasStdin();
    public java.lang.Boolean getStdinOnce();
    public A withStdinOnce(java.lang.Boolean stdinOnce);
    public java.lang.Boolean hasStdinOnce();
    public java.lang.String getTargetContainerName();
    public A withTargetContainerName(java.lang.String targetContainerName);
    public java.lang.Boolean hasTargetContainerName();
    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withTargetContainerName instead.
     */
        public A withNewTargetContainerName(java.lang.String original);
    public java.lang.String getTerminationMessagePath();
    public A withTerminationMessagePath(java.lang.String terminationMessagePath);
    public java.lang.Boolean hasTerminationMessagePath();
    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withTerminationMessagePath instead.
     */
        public A withNewTerminationMessagePath(java.lang.String original);
    public java.lang.String getTerminationMessagePolicy();
    public A withTerminationMessagePolicy(java.lang.String terminationMessagePolicy);
    public java.lang.Boolean hasTerminationMessagePolicy();
    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withTerminationMessagePolicy instead.
     */
        public A withNewTerminationMessagePolicy(java.lang.String original);
    public java.lang.Boolean getTty();
    public A withTty(java.lang.Boolean tty);
    public java.lang.Boolean hasTty();
    public A addToVolumeDevices(int index,io.kubernetes.client.openapi.models.V1VolumeDevice item);
    public A setToVolumeDevices(int index,io.kubernetes.client.openapi.models.V1VolumeDevice item);
    public A addToVolumeDevices(io.kubernetes.client.openapi.models.V1VolumeDevice... items);
    public A addAllToVolumeDevices(java.util.Collection<io.kubernetes.client.openapi.models.V1VolumeDevice> items);
    public A removeFromVolumeDevices(io.kubernetes.client.openapi.models.V1VolumeDevice... items);
    public A removeAllFromVolumeDevices(java.util.Collection<io.kubernetes.client.openapi.models.V1VolumeDevice> items);
    public A removeMatchingFromVolumeDevices(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1VolumeDeviceBuilder> predicate);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildVolumeDevices instead.
     * @return The buildable object.
     */
        public java.util.List<io.kubernetes.client.openapi.models.V1VolumeDevice> getVolumeDevices();
    public java.util.List<io.kubernetes.client.openapi.models.V1VolumeDevice> buildVolumeDevices();
    public io.kubernetes.client.openapi.models.V1VolumeDevice buildVolumeDevice(int index);
    public io.kubernetes.client.openapi.models.V1VolumeDevice buildFirstVolumeDevice();
    public io.kubernetes.client.openapi.models.V1VolumeDevice buildLastVolumeDevice();
    public io.kubernetes.client.openapi.models.V1VolumeDevice buildMatchingVolumeDevice(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1VolumeDeviceBuilder> predicate);
    public java.lang.Boolean hasMatchingVolumeDevice(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1VolumeDeviceBuilder> predicate);
    public A withVolumeDevices(java.util.List<io.kubernetes.client.openapi.models.V1VolumeDevice> volumeDevices);
    public A withVolumeDevices(io.kubernetes.client.openapi.models.V1VolumeDevice... volumeDevices);
    public java.lang.Boolean hasVolumeDevices();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeDevicesNested<A> addNewVolumeDevice();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeDevicesNested<A> addNewVolumeDeviceLike(io.kubernetes.client.openapi.models.V1VolumeDevice item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeDevicesNested<A> setNewVolumeDeviceLike(int index,io.kubernetes.client.openapi.models.V1VolumeDevice item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeDevicesNested<A> editVolumeDevice(int index);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeDevicesNested<A> editFirstVolumeDevice();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeDevicesNested<A> editLastVolumeDevice();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeDevicesNested<A> editMatchingVolumeDevice(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1VolumeDeviceBuilder> predicate);
    public A addToVolumeMounts(int index,io.kubernetes.client.openapi.models.V1VolumeMount item);
    public A setToVolumeMounts(int index,io.kubernetes.client.openapi.models.V1VolumeMount item);
    public A addToVolumeMounts(io.kubernetes.client.openapi.models.V1VolumeMount... items);
    public A addAllToVolumeMounts(java.util.Collection<io.kubernetes.client.openapi.models.V1VolumeMount> items);
    public A removeFromVolumeMounts(io.kubernetes.client.openapi.models.V1VolumeMount... items);
    public A removeAllFromVolumeMounts(java.util.Collection<io.kubernetes.client.openapi.models.V1VolumeMount> items);
    public A removeMatchingFromVolumeMounts(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1VolumeMountBuilder> predicate);
    
    @java.lang.Deprecated
        
    /**
     * This method has been deprecated, please use method buildVolumeMounts instead.
     * @return The buildable object.
     */
        public java.util.List<io.kubernetes.client.openapi.models.V1VolumeMount> getVolumeMounts();
    public java.util.List<io.kubernetes.client.openapi.models.V1VolumeMount> buildVolumeMounts();
    public io.kubernetes.client.openapi.models.V1VolumeMount buildVolumeMount(int index);
    public io.kubernetes.client.openapi.models.V1VolumeMount buildFirstVolumeMount();
    public io.kubernetes.client.openapi.models.V1VolumeMount buildLastVolumeMount();
    public io.kubernetes.client.openapi.models.V1VolumeMount buildMatchingVolumeMount(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1VolumeMountBuilder> predicate);
    public java.lang.Boolean hasMatchingVolumeMount(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1VolumeMountBuilder> predicate);
    public A withVolumeMounts(java.util.List<io.kubernetes.client.openapi.models.V1VolumeMount> volumeMounts);
    public A withVolumeMounts(io.kubernetes.client.openapi.models.V1VolumeMount... volumeMounts);
    public java.lang.Boolean hasVolumeMounts();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeMountsNested<A> addNewVolumeMount();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeMountsNested<A> addNewVolumeMountLike(io.kubernetes.client.openapi.models.V1VolumeMount item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeMountsNested<A> setNewVolumeMountLike(int index,io.kubernetes.client.openapi.models.V1VolumeMount item);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeMountsNested<A> editVolumeMount(int index);
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeMountsNested<A> editFirstVolumeMount();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeMountsNested<A> editLastVolumeMount();
    public io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeMountsNested<A> editMatchingVolumeMount(java.util.function.Predicate<io.kubernetes.client.openapi.models.V1VolumeMountBuilder> predicate);
    public java.lang.String getWorkingDir();
    public A withWorkingDir(java.lang.String workingDir);
    public java.lang.Boolean hasWorkingDir();
    
    @java.lang.Deprecated
        
    /**
     * Method is deprecated. use withWorkingDir instead.
     */
        public A withNewWorkingDir(java.lang.String original);
    public interface EnvNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1EnvVarFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvNested<N>> {

            public N and();
            public N endEnv();    }


    public interface EnvFromNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1EnvFromSourceFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.EnvFromNested<N>> {

            public N and();
            public N endEnvFrom();    }


    public interface LifecycleNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1LifecycleFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LifecycleNested<N>> {

            public N and();
            public N endLifecycle();    }


    public interface LivenessProbeNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1ProbeFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.LivenessProbeNested<N>> {

            public N and();
            public N endLivenessProbe();    }


    public interface PortsNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1ContainerPortFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.PortsNested<N>> {

            public N and();
            public N endPort();    }


    public interface ReadinessProbeNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1ProbeFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ReadinessProbeNested<N>> {

            public N and();
            public N endReadinessProbe();    }


    public interface ResourcesNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1ResourceRequirementsFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.ResourcesNested<N>> {

            public N and();
            public N endResources();    }


    public interface SecurityContextNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1SecurityContextFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.SecurityContextNested<N>> {

            public N and();
            public N endSecurityContext();    }


    public interface StartupProbeNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1ProbeFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.StartupProbeNested<N>> {

            public N and();
            public N endStartupProbe();    }


    public interface VolumeDevicesNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1VolumeDeviceFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeDevicesNested<N>> {

            public N and();
            public N endVolumeDevice();    }


    public interface VolumeMountsNested<N> extends io.kubernetes.client.fluent.Nested<N>,io.kubernetes.client.openapi.models.V1VolumeMountFluent<io.kubernetes.client.openapi.models.V1EphemeralContainerFluent.VolumeMountsNested<N>> {

            public N and();
            public N endVolumeMount();    }


}
